#ifndef					Square_HH
# define				Square_HH

# include				<SFML/Graphics.hpp>
# include				<map>
# include				<utility>
# include				"Macro.hpp"

class 					Square
{
private:
	//					Attributes
	sf::Texture			_stoneTexture;
	sf::Sprite 			_stone;
	Box					&_squareInfo;
	std::map<int, Square*>&_squareMap;
	int					_posX;
	int					_posY;
	int					_key;
	bool				_color;
	bool				_display;
	short				_stonePos;

public:
	//					Ctor-Dtor
	Square(int posX, int posY, Box &squarInfo, std::map<int, Square*> &squareMap);
	~Square();
	
	//					Function
	void				putStone(std::string path);
	void				removeStone();

	//					Getters
	sf::Sprite	const	&getStone() const;
	bool		const	displayable() const;
	Box			const	&getInfo();
	//					Setters
	void				setSmell(int smellPower, short direction, int color, int option);
	void				spreadSmell(int key, int smellPower, short direction, bool &state, int option);
	void				smellManager(int option);
	void				setDisplay();
};

#endif